package club.vann.kafka.mock.common.model.info;

import com.cyberx.lunyu.TableDataOuterClass;
import java.util.List;
import lombok.Data;

/** Zhouyi动态Table数据定义。 */
@Data
public class DynamicTableInfo {
  private Long timestamp;
  private String tableName;
  private List<String> tableData;

  /** 数据类型 */
  public enum DataType {
    DOUBLE("DOUBLE"),
    STRING("STRING"),
    LONG("LONG");

    private String code;

    DataType(String code) {
      this.code = code;
    }

    public String getCode() {
      return this.code;
    }
  }

  public Object getDataByDataType(
      TableDataOuterClass.Column column, TableDataOuterClass.Cell cell) {
    Object value = null;
    String columnDataType = column.getDataType();
    if (DataType.DOUBLE.getCode().equals(columnDataType)) {
      value = cell.getDoubleData();
    } else if (DataType.STRING.getCode().equals(columnDataType)) {
      value = cell.getStringData();
    } else if (DataType.LONG.getCode().equals(columnDataType)) {
      value = cell.getLongData();
    }
    return value;
  }
}
